home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / tools / mg / src.lzh / amiga / sysdef.h < prev    next >
C/C++ Source or Header  |  1990-05-23  |  2KB  |  85 lines

  1. /*
  2.  * Name:    MicroEMACS Version:    MG 2a Commodore Amiga system header
  3.  * file.
  4.  */
  5.  
  6. #undef    AZTEC
  7. #undef    LATTICE
  8. #undef    MANX
  9. #include "compiler.h"
  10.  
  11. /*
  12.  * ANSI means we have an ANSI-compliant compiler, and need a tweak for
  13.  * alloca.
  14.  */
  15. #ifdef    LATTICE
  16. #define    ANSI
  17. #define STACK_DIRECTION    -1
  18. #define    C_ALLOCA    1    /* To clean up some excess memory */
  19. #endif
  20.  
  21. #ifdef AZTEC
  22. /* assumes Manx Aztec C v5.0 or greater */
  23. #define ANSI
  24. #define STACK_DIRECTION -1
  25. #define C_ALLOCA      1
  26. #undef LATTICE
  27. #ifdef NO_PROTO
  28. #undef NO_PROTO
  29. #endif
  30. #endif
  31.  
  32. #ifdef    MANX
  33. #define NO_PROTO
  34. extern char    *offset_dummy;    /* Manx 3.2 can't handle 0->     */
  35. #define OFFSET(type,member) \
  36.  ((char *)&(((type *)offset_dummy)->member)-(char *)((type *)offset_dummy))
  37. /* But Lattice can, as of 5.04 */
  38. #endif
  39.  
  40. #define    GOOD    0        /* Good exit status.         */
  41. #define    SYSINIT    sysinit()    /* System-specific initialization */
  42. #define SYSCLEANUP syscleanup()    /* System-specific cleanup     */
  43. #define MALLOCROUND(m)    (m+=7,m&=~7)    /* Round up to 8 byte boundary     */
  44. #ifndef    NULL
  45. #define NULL    0        /* These are crass, but         */
  46. #endif
  47. #define    EOF    -1        /* will work`             */
  48.  
  49. /*
  50.  * Macros used by the buffer name making code. Start at the end of the file
  51.  * name, scan to the left until BDC1 (or BDC2, if defined) is reached. The
  52.  * buffer name starts just to the right of that location, and stops at end of
  53.  * string (or at the next BDC3 character, if defined). BDC2 and BDC3 are
  54.  * mainly for VMS.
  55.  */
  56. #define    BDC1    ':'        /* Buffer names.         */
  57. #define    BDC2    '/'
  58.  
  59. /*
  60.  * Typedefs for internal key type and how big a region can be.
  61.  */
  62.  
  63. typedef short   KCHAR;        /* type used to represent Emacs characters */
  64. typedef long    RSIZE;        /* size of a region     */
  65.  
  66. #define    MAXPATH    128        /* longest expected directory path     */
  67.  
  68. #define    bcopy(src,dest,len) movmem(src,dest,len)
  69. #ifdef MANX
  70. #define bzero(dest, len) setmem(dest, len, (char) 0)
  71. /* defined in amiga/ttyio.c only cause there isn't a better place */
  72. #define bcmp(src1, src2, len) m_memcmp(src1, src2, len)
  73. #else
  74. #define bzero(dest, len) memset(dest, (char) 0, len)
  75. #define bcmp(src1, src2, len) memcmp(src1, src2, len)
  76. #endif
  77.  
  78. #ifndef    LATTICE
  79. #define fncmp Strcmp
  80. #else
  81. #define fncmp stricmp
  82. #endif
  83.  
  84. #define unlinkdir(s1) unlink(s1)
  85.